/**
 * <pre>
 * Author:		linriqing
 * Create:	 	2014-3-13 下午05:57:04
 * Copyright: 	Copyright (c) 2014
 * Company:		Shenzhen Helper
 * <pre>
 */
package com.hengpeng.itfin.domain.event.common;

import com.hengpeng.common.eds.Event;

/**
 * <pre>
 * 系统错误事件
 * </pre>
 * @author linriqing
 * @version 1.0, 2014-3-13
 */
public class SystemErrorEvent extends Event
{
	public enum SystemAlarmType
	{
		/**
		 * 用户状态错误
		 */
		Member_StatusError,
		/**
		 * 方案失败错误
		 */
		Plan_FailedError,
		/**
		 * 306定投方案失败错误
		 */
		Plan_306FailedError,
		/**
		 * 出票失败错误
		 */
		PrintTicket_FailedError,
		/**
		 * 本地奖期派奖异常
		 */
		Issue_DispatchException,
		/**
		 * 出票过程异常
		 */
		PrintTicket_SendDataException,
		/**
		 * 根据落地规则无法获取落地终端
		 */
		PrintTicket_NoPrintCounter,
		/**
		 * 出票状态同步过程异常
		 */
		PrintTicket_SynDataException,
		/**
		 * 定时任务执行错误
		 */
		Schedule_Run_Error;
	}

	private static final long serialVersionUID = 377436612153601979L;

	private SystemAlarmType errorType;

	/**
	 * 构造函数
	 * @param source 事件发布者
	 * @param summary 事件概要
	 * @param actionState 事件动作状态
	 * @param errorType 系统错误类型
	 * @param exception 异常
	 */
	public SystemErrorEvent(Object source, String summary, ActionState actionState, SystemAlarmType errorType,
			Throwable exception)
	{
		super(source, summary, actionState, exception);
		this.errorType = errorType;
	}

	/**
	 * 构造函数
	 * @param source 事件发布者
	 * @param summary 事件概要
	 * @param actionState 事件动作状态
	 * @param errorType 系统错误类型
	 */
	public SystemErrorEvent(Object source, String summary, ActionState actionState, SystemAlarmType errorType)
	{
		super(source, summary, actionState);
		this.errorType = errorType;
	}

	/**
	 * @return 系统错误类型
	 */
	public SystemAlarmType getErrorType()
	{
		return errorType;
	}
}
